WebAssembly WASIμ νλ‘μΈμ€ μλλ°μ± κΈ°λ₯μ νμνμ¬ μ ν리μΌμ΄μ μ μμ νκ³ κ²©λ¦¬λ μ€νμ κ°λ₯νκ² νμΈμ. WASIκ° λ€μν νλ«νΌμμ 보μ, μ΄μμ±, μ±λ₯μ μ΄λ»κ² ν₯μμν€λμ§ μμ보μΈμ.
WebAssembly WASI νλ‘μΈμ€ μλλ°μ±: 격리λ νλ‘μΈμ€ νκ²½
WebAssembly(Wasm)λ κ³ μ±λ₯μ μ΄μ κ°λ₯νκ³ μμ ν μ ν리μΌμ΄μ μ ꡬμΆνκΈ° μν νμ μ μΈ κΈ°μ λ‘ λΆμνμ΅λλ€. μ²μμλ μΉ λΈλΌμ°μ λ₯Ό μν΄ μ€κ³λμμ§λ§, κ·Έ κΈ°λ₯μ μΉμ ν¨μ¬ λ°μ΄λμ΄ μλ²λ¦¬μ€ μ»΄ν¨ν , μ£μ§ μ»΄ν¨ν , μλ² λλ μμ€ν λ± λ€μν λΆμΌμμ νμ©λκ³ μμ΅λλ€. Wasmμ λ€μ¬λ€λ₯ν¨κ³Ό 보μμ ν΅μ¬ μΈ‘λ©΄μ νΉν WebAssembly μμ€ν μΈν°νμ΄μ€(WASI)μ κ²°ν©λ λμ μλλ°μ± λͺ¨λΈμ λλ€. μ΄ κ²μλ¬Όμμλ WebAssembly WASI νλ‘μΈμ€ μλλ°μ±μ 볡μ‘μ±μ κΉμ΄ νκ³ λ€μ΄ κ·Έ μ΄μ , ꡬν λ° κΈλ‘λ² μ»¨ν μ€νΈμμμ μ μ¬μ μμ© λΆμΌλ₯Ό νμν©λλ€.
WebAssemblyμ μλλ°μ± λͺ¨λΈ μ΄ν΄νκΈ°
WebAssemblyλ C, C++, Rust, Goμ κ°μ κ³ κΈ μΈμ΄μ μ»΄νμΌ λμμΌλ‘ μ€κ³λ μ΄μ§ λͺ λ Ήμ΄ νμμ λλ€. ν¨μ¨μ μ΄κ³ μ΄μ κ°λ₯νλλ‘ μ€κ³λμ΄ μ½λκ° λ€μν νλ«νΌκ³Ό μν€ν μ²μμ μΌκ΄λκ² μ€νλ μ μλλ‘ ν©λλ€. κΈ°μ‘΄μ κΈ°κ³ μ½λμ λ¬λ¦¬, Wasmμ μλλ°μ€ νκ²½ λ΄μμ μλν©λλ€. μ΄ μλλ°μ€λ μμ νκ³ κ²©λ¦¬λ μ€ν 컨ν μ€νΈλ₯Ό μ 곡νμ¬ Wasm μ½λκ° κΈ°λ³Έ μ΄μ 체μ λ νλμ¨μ΄μ μ§μ μ κ·Όνλ κ²μ λ°©μ§ν©λλ€.
WebAssembly μλλ°μ± λͺ¨λΈμ μ£Όμ νΉμ§μ λ€μκ³Ό κ°μ΅λλ€:
- λ©λͺ¨λ¦¬ 격리: Wasm μ½λλ μ체 μ ν λ©λͺ¨λ¦¬ κ³΅κ° λ΄μμ μλνμ¬ ν λΉλ μμ λ°μ λ©λͺ¨λ¦¬μ μ κ·Όνκ±°λ μμ νλ κ²μ λ°©μ§ν©λλ€.
- μ μ΄ νλ¦ λ¬΄κ²°μ±: Wasmμ μ격ν μ μ΄ νλ¦μ κ°μ νμ¬ μμμ μ νλ μ½λ μ£Όμ 곡격μ λ°©μ§ν©λλ€.
- μ νλ μμ€ν νΈμΆ: Wasm μ½λλ μ΄μ 체μ μ μ§μ μμ€ν νΈμΆμ ν μ μμ΅λλ€. μΈλΆ μΈκ³μμ λͺ¨λ μνΈ μμ©μ μ μ μλ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ€μ¬λμ΄μΌ ν©λλ€.
μ΄λ¬ν λ΄μ¬λ μλλ°μ±μ Wasmμ μΉ λΈλΌμ°μ μ νλ¬κ·ΈμΈμ΄λ μλ²λ¦¬μ€ ν¨μμ νμ¬ κ΅¬μ± μμμ κ°μ΄ μ λ’°ν μ μλ μ½λλ₯Ό μμ νκ² μ€ννκΈ° μν λ§€λ ₯μ μΈ μ νμΌλ‘ λ§λλλ€.
WASI μκ°: μ΄μ 체μ λ‘μ κ°κ·Ή λ©μ°κΈ°
Wasmμ κ°λ ₯ν μλλ°μ± λͺ¨λΈμ μ 곡νμ§λ§, μ΄κΈ°μλ μ΄μ 체μ μ μνΈ μμ©ν νμ€νλ λ°©λ²μ΄ λΆμ‘±νμ΅λλ€. μ΄ νκ³λ λΈλΌμ°μ νκ²½ λ°μμμ μ±νμ λ°©ν΄νμ΅λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ WebAssembly μμ€ν μΈν°νμ΄μ€(WASI)κ° λ§λ€μ΄μ‘μ΅λλ€.
WASIλ WebAssemblyλ₯Ό μν λͺ¨λν μμ€ν μΈν°νμ΄μ€μ λλ€. Wasm λͺ¨λμ΄ νμΌ μ κ·Ό, λ€νΈμνΉ, νλ‘μΈμ€ κ΄λ¦¬ λ± νΈμ€νΈ μ΄μ 체μ μ μνΈ μμ©νλ λ° μ¬μ©ν μ μλ ν¨μ μ§ν©μ μ μν©λλ€. κ²°μ μ μΌλ‘, WASIλ μ μ΄λκ³ μ νλ μΈν°νμ΄μ€λ₯Ό μ 곡ν¨μΌλ‘μ¨ Wasmμ μλλ°μ€ νΉμ±μ μ μ§ν©λλ€.
WASIλ₯Ό 곡격 νλ©΄μ μ΅μννκ³ Wasm μ½λκ° λ¬΄λ¨ μμ μ μννλ κ²μ λ°©μ§νλλ‘ μ€κ³λ, μ μ€νκ² μ λ³λ μμ€ν νΈμΆμ μ§ν©μ΄λΌκ³ μκ°νλ©΄ λ©λλ€. κ° WASI ν¨μλ 보μμ μΌλμ λκ³ μ μ€νκ² μ€κ³λμ΄, Wasm μ½λκ° λͺ μμ μΌλ‘ μ κ·Ό κΆνμ λΆμ¬λ°μ 리μμ€μλ§ μ κ·Όν μ μλλ‘ λ³΄μ₯ν©λλ€.
WASI νλ‘μΈμ€ μλλ°μ±: ν₯μλ 격리 λ° λ³΄μ
Wasmμ μλλ°μ±κ³Ό WASIμ μμ€ν μΈν°νμ΄μ€λ₯Ό κΈ°λ°μΌλ‘ ꡬμΆλ WASI νλ‘μΈμ€ μλλ°μ±μ 격리μ 보μμ ν λ¨κ³ λ λμ΄μ¬λ¦½λλ€. μ΄λ Wasm λͺ¨λμ΄ κ²©λ¦¬λ νλ‘μΈμ€λ‘ μ€νλλλ‘ νμ¬ νΈμ€νΈ μμ€ν μ λ―ΈμΉ μ μλ μ μ¬μ μν₯μ λμ± μ νν©λλ€.
μ ν΅μ μΈ μ΄μ 체μ μμ νλ‘μΈμ€λ μΌλ°μ μΌλ‘ λ©λͺ¨λ¦¬ λ³΄νΈ λ° μ κ·Ό μ μ΄ λͺ©λ‘κ³Ό κ°μ λ€μν λ©μ»€λμ¦μ ν΅ν΄ μλ‘ κ²©λ¦¬λ©λλ€. WASI νλ‘μΈμ€ μλλ°μ±μ Wasm λͺ¨λμ λν΄ μ μ¬ν μμ€μ 격리λ₯Ό μ 곡νμ¬ μλ‘ λλ νΈμ€νΈ μ΄μ 체μ λ₯Ό λ°©ν΄ν μ μλλ‘ λ³΄μ₯ν©λλ€.
WASI νλ‘μΈμ€ μλλ°μ±μ μ£Όμ μ΄μ :
- ν₯μλ 보μ: Wasm λͺ¨λμ 격리λ νλ‘μΈμ€μμ μ€νν¨μΌλ‘μ¨ μ μ¬μ μΈ λ³΄μ μ·¨μ½μ μ μν₯μ μ΅μνν©λλ€. νλμ Wasm λͺ¨λμ΄ μμλλλΌλ λ€λ₯Έ λͺ¨λμ΄λ νΈμ€νΈ μμ€ν μ μ§μ μ κ·Όνκ±°λ μν₯μ μ€ μ μμ΅λλ€.
- κ°μ λ 리μμ€ κ΄λ¦¬: νλ‘μΈμ€ 격리λ CPU λ° λ©λͺ¨λ¦¬ ν λΉκ³Ό κ°μ λ λμ 리μμ€ κ΄λ¦¬λ₯Ό κ°λ₯νκ² ν©λλ€. κ° Wasm λͺ¨λμ νΉμ μμ 리μμ€λ₯Ό ν λΉνμ¬ κ³Όλν 리μμ€ μλΉμ λ€λ₯Έ λͺ¨λμ μ±λ₯μ λ―ΈμΉλ μν₯μ λ°©μ§ν μ μμ΅λλ€.
- λ¨μνλ λλ²κΉ λ° λͺ¨λν°λ§: 격리λ νλ‘μΈμ€λ λλ²κΉ νκ³ λͺ¨λν°λ§νκΈ°κ° λ μ½μ΅λλ€. κ° νλ‘μΈμ€λ₯Ό λ 립μ μΌλ‘ κ²μ¬ν μ μμ΄ λ¬Έμ λ₯Ό μλ³νκ³ ν΄κ²°νκΈ°κ° λ μ¬μμ§λλ€.
- ν¬λ‘μ€ νλ«νΌ μΌκ΄μ±: WASIλ λ€μν μ΄μ 체μ μ μν€ν μ²μ κ±Έμ³ μΌκ΄λ μμ€ν μΈν°νμ΄μ€λ₯Ό μ 곡νλ κ²μ λͺ©νλ‘ ν©λλ€. μ΄λ μμ μμ΄ λ€μν νλ«νΌμμ μ€νλ μ μλ Wasm μ ν리μΌμ΄μ μ κ°λ°νκ³ λ°°ν¬νλ κ²μ λ μ½κ² λ§λλλ€. μλ₯Ό λ€μ΄, Linuxμμ WASIλ‘ μλλ°μ€λ Wasm λͺ¨λμ Windowsλ macOSμμ WASIλ‘ μλλ°μ€λ λμ μ μ¬νκ² λμν΄μΌ ν©λλ€. λ¨, κΈ°λ³Έ νΈμ€νΈλ³ ꡬνμ λ€λ₯Ό μ μμ΅λλ€.
WASI νλ‘μΈμ€ μλλ°μ±μ μ€μ μμ
WASI νλ‘μΈμ€ μλλ°μ±μ΄ μλΉν μ΄μ μ μ 곡ν μ μλ λ€μ μλ리μ€λ₯Ό κ³ λ €ν΄ λ³΄μΈμ:
- μλ²λ¦¬μ€ μ»΄ν¨ν : μλ²λ¦¬μ€ νλ«νΌμ μ’ μ’ λ€μν μμ€λ‘λΆν° μ λ’°ν μ μλ μ½λλ₯Ό μ€νν©λλ€. WASI νλ‘μΈμ€ μλλ°μ±μ μ΄λ¬ν ν¨μλ₯Ό μ€ννκΈ° μν μμ νκ³ κ²©λ¦¬λ νκ²½μ μ 곡νμ¬ νλ«νΌμ μ μ± μ½λλ 리μμ€ κ³ κ°λ‘λΆν° 보νΈν μ μμ΅λλ€. κΈλ‘λ² CDN μ 곡μ μ²΄κ° μλ²λ¦¬μ€ ν¨μλ₯Ό μ¬μ©νμ¬ λμ μΌλ‘ μ΄λ―Έμ§λ₯Ό 리μ¬μ΄μ§νλ€κ³ μμν΄ λ³΄μΈμ. WASI μλλ°μ±μ μ μμ μΈ μ΄λ―Έμ§ μ‘°μ μ½λκ° CDNμ μΈνλΌλ₯Ό μμμν€λ κ²μ λ°©μ§ν©λλ€.
- μ£μ§ μ»΄ν¨ν : μ£μ§ μ₯μΉλ μ’ μ’ λ¦¬μμ€κ° μ νμ μ΄λ©° μ λ’°ν μ μλ νκ²½μ λ°°ν¬λ μ μμ΅λλ€. WASI νλ‘μΈμ€ μλλ°μ±μ μ ν리μΌμ΄μ μ 격리νκ³ λ―Όκ°ν λ°μ΄ν°λ μμ€ν 리μμ€μ μ κ·Όνλ κ²μ λ°©μ§νμ¬ μ΄λ¬ν μ₯μΉλ₯Ό 보νΈνλ λ° λμμ΄ λ μ μμ΅λλ€. μ€μ μλ²μ μ§κ³λ κ²°κ³Όλ₯Ό 보λ΄κΈ° μ μ λ‘컬μμ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ μ€λ§νΈ μν° μΌμλ₯Ό μκ°ν΄ 보μΈμ. WASIλ μΌμλ₯Ό μ μ± μ½λμ λ°μ΄ν° μ μΆλ‘λΆν° 보νΈν©λλ€.
- μλ² λλ μμ€ν : μλ² λλ μμ€ν μ μ’ μ’ λμ μ λ’°μ±κ³Ό 보μμ΄ μꡬλλ μ€μν μ ν리μΌμ΄μ μ μ€νν©λλ€. WASI νλ‘μΈμ€ μλλ°μ±μ μ΄λ¬ν μμ€ν μ μννΈμ¨μ΄ μ·¨μ½μ μΌλ‘λΆν° 보νΈνκ³ μλλλ‘ μλνλλ‘ λ³΄μ₯νλ λ° λμμ΄ λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μλμ°¨ μ μ΄ μμ€ν μμ WASIλ μλ‘ λ€λ₯Έ μννΈμ¨μ΄ λͺ¨λμ 격리νμ¬ ν λͺ¨λμ μ€μλμ΄ λ€λ₯Έ μ€μν κΈ°λ₯μ μν₯μ λ―ΈμΉλ κ²μ λ°©μ§ν μ μμ΅λλ€.
- νλ¬κ·ΈμΈ μν€ν μ²: νλ¬κ·ΈμΈμ μ§μνλ μ ν리μΌμ΄μ μ μ’ μ’ μ λ’°ν μ μλ μ½λμ κ΄λ ¨λ 보μ μνμ μ§λ©΄ν©λλ€. WASIλ νλ¬κ·ΈμΈμ΄ 격리λ νλ‘μΈμ€ λ΄μμ μ€νλλλ‘ νμ¬ λ―Όκ°ν μμ€ν 리μμ€μ λν μ κ·Όμ μ νν©λλ€. μ΄λ₯Ό ν΅ν΄ λ μμ νκ³ μ λ’°ν μ μλ νλ¬κ·ΈμΈ μν€ν μ²κ° κ°λ₯ν΄μ§λλ€. μ μΈκ³μ μΌλ‘ μ¬μ©λλ λμμΈ μννΈμ¨μ΄λ κ°λ°μκ° WASIμ μν΄ μμ νκ² κ²©λ¦¬λ λ§μΆ€ν νλ¬κ·ΈμΈμ λ§λ€μ΄ ν΅μ¬ μ ν리μΌμ΄μ μ μμ μ±μ μννμ§ μμΌλ©΄μ κΈ°λ₯μ νμ₯ν μ μλλ‘ ν©λλ€.
- 보μ μ»΄ν¨ν : WASIλ κΈ°λ° μ»΄ν¨ν μ μν 보μ μν΄λ μ΄λΈλ₯Ό λ§λλ λ° μ¬μ©λ μ μμ΄, μ λ’°ν μ μλ νκ²½μμ λ―Όκ°ν μ½λμ λ°μ΄ν°μ μ€νμ κ°λ₯νκ² ν©λλ€. μ΄λ κΈμ΅ μλΉμ€ λ° μλ£μ κ°μ λΆμΌμμ μμ©λ©λλ€. λ―Όκ°ν μΉ΄λ μΈλΆ μ λ³΄κ° λ°μ΄ν° μ μΆμ λ°©μ§νκΈ° μν΄ WASI μλλ°μ€ νκ²½ λ΄μμ μ²λ¦¬λλ 보μ κ²°μ μ²λ¦¬ μμ€ν μ μκ°ν΄ 보μΈμ.
WASI νλ‘μΈμ€ μλλ°μ± ꡬννκΈ°
WASI νλ‘μΈμ€ μλλ°μ±μ ꡬννλ λ° λμμ΄ λλ μ¬λ¬ λꡬμ λΌμ΄λΈλ¬λ¦¬κ° μμ΅λλ€. μ΄λ¬ν λꡬλ 격리λ Wasm νλ‘μΈμ€λ₯Ό μμ±νκ³ κ΄λ¦¬νλ λ° νμν μΈνλΌλ₯Ό μ 곡ν©λλ€.
WASI νλ‘μΈμ€ μλλ°μ± ꡬνμ κ΄λ ¨λ μ£Όμ κ΅¬μ± μμ:
- Wasm λ°νμ: Wasm λ°νμμ Wasm μ½λλ₯Ό μ€ννλ μν μ ν©λλ€. λ€μμ ν¬ν¨νμ¬ μ¬λ¬ Wasm λ°νμμ΄ WASIλ₯Ό μ§μν©λλ€:
- Wasmtime: Bytecode Allianceμμ κ°λ°ν λ 립ν Wasm λ°νμμ λλ€. μ±λ₯κ³Ό 보μμ μν΄ μ€κ³λμμΌλ©° WASIμ λν νμν μ§μμ μ 곡ν©λλ€.
- Wasmer: WASIλ₯Ό μ§μνκ³ λ€μν μλ² λ© μ΅μ μ μ 곡νλ λ λ€λ₯Έ μΈκΈ° μλ Wasm λ°νμμ λλ€.
- Lucet: λΉ λ₯Έ μμ μκ°κ³Ό κ³ μ±λ₯μ μν΄ μ€κ³λ Wasm μ»΄νμΌλ¬ λ° λ°νμμ λλ€.
- WASI SDK: WASI SDKλ C, C++, Rust μ½λλ₯Ό WASI νΈν Wasm λͺ¨λλ‘ μ»΄νμΌνλ λ° νμν λꡬμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡ν©λλ€.
- νλ‘μΈμ€ κ΄λ¦¬: νλ‘μΈμ€ κ΄λ¦¬ μμ€ν μ 격리λ Wasm νλ‘μΈμ€λ₯Ό μμ±νκ³ κ΄λ¦¬νλ μν μ ν©λλ€. μ΄λ μ΄μ 체μ ν리미ν°λΈλ₯Ό μ¬μ©νκ±°λ κΈ°μ‘΄ 컨ν μ΄λν κΈ°μ μ νμ©νμ¬ κ΅¬νν μ μμ΅λλ€.
κ°λ¨ν μμ(κ°λ μ )
μ 체 ꡬνμ μ΄ κ²μλ¬Όμ λ²μλ₯Ό λ²μ΄λμ§λ§, Wasmtimeμ μ¬μ©νμ¬ WASI νλ‘μΈμ€ μλλ°μ±μ ꡬνν μ μλ λ°©λ²μ λν κ°λ μ κ°μλ λ€μκ³Ό κ°μ΅λλ€:
- Wasm λͺ¨λ μ»΄νμΌ: WASI SDKλ₯Ό μ¬μ©νμ¬ μ ν리μΌμ΄μ μ½λλ₯Ό WASI νΈν Wasm λͺ¨λλ‘ μ»΄νμΌν©λλ€.
- Wasmtime μμ§ μ΄κΈ°ν: Wasmtime μμ§μ μΈμ€ν΄μ€λ₯Ό μμ±ν©λλ€.
- Wasmtime λͺ¨λ μμ±: μ»΄νμΌλ Wasm λͺ¨λμ Wasmtime μμ§μ λ‘λν©λλ€.
- WASI μν¬νΈ ꡬμ±: WASI νκ²½μ μμ±νκ³ νμ©λ μν¬νΈ(μ: νμΌ μμ€ν μ κ·Ό, λ€νΈμν¬ μ κ·Ό)λ₯Ό ꡬμ±ν©λλ€. νΉμ λλ ν 리λ λ€νΈμν¬ μ£Όμμ λν μ κ·Όμ μ νν μ μμ΅λλ€.
- λͺ¨λ μΈμ€ν΄μ€ν: ꡬμ±λ WASI νκ²½μ μν¬νΈλ‘ μ 곡νμ¬ Wasm λͺ¨λμ μΈμ€ν΄μ€λ₯Ό μμ±ν©λλ€.
- λͺ¨λ μ€ν: Wasm λͺ¨λ λ΄μμ μνλ ν¨μλ₯Ό νΈμΆν©λλ€. Wasmtimeμ μ΄μ 체μ μμ λͺ¨λ μνΈ μμ©μ΄ WASI μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ€μ¬λκ³ κ΅¬μ±λ μ ν μ¬νμ λ°λ₯΄λλ‘ λ³΄μ₯ν©λλ€.
- νλ‘μΈμ€ λͺ¨λν°λ§ λ° κ΄λ¦¬: Wasmtime λ°νμμ 리μμ€ μ¬μ©λμ λͺ¨λν°λ§νκ³ Wasm νλ‘μΈμ€μ λν μ νμ κ°μ νλλ‘ κ΅¬μ±ν μ μμ΅λλ€.
μ΄κ²μ κ°λ¨ν μμμ΄λ©°, ꡬ체μ μΈ κ΅¬ν μΈλΆ μ¬νμ μ νν Wasm λ°νμκ³Ό νλ‘μΈμ€ κ΄λ¦¬ μμ€ν μ λ°λΌ λ¬λΌμ§λλ€. κ·Έλ¬λ ν΅μ¬ μμΉμ λμΌνκ² μ μ§λ©λλ€: Wasm λͺ¨λμ μλλ°μ€ νκ²½ λ΄μμ μ€νλλ©°, μ΄μ 체μ μμ λͺ¨λ μνΈ μμ©μ WASI μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ€μ¬λ©λλ€.
κ³Όμ λ° κ³ λ € μ¬ν
WASI νλ‘μΈμ€ μλλ°μ±μ μλΉν μ΄μ μ μ 곡νμ§λ§, μΌλμ λμ΄μΌ ν κ³Όμ μ κ³ λ € μ¬νλ μμ΅λλ€:
- μ±λ₯ μ€λ²ν€λ: νλ‘μΈμ€ 격리λ 격리λ νλ‘μΈμ€λ₯Ό κ΄λ¦¬νκΈ° μν΄ μΆκ° 리μμ€κ° νμνλ―λ‘ μ½κ°μ μ±λ₯ μ€λ²ν€λλ₯Ό μ λ°ν μ μμ΅λλ€. μ μ€ν λ²€μΉλ§νΉκ³Ό μ΅μ νκ° μ€μν©λλ€.
- 볡μ‘μ±: WASI νλ‘μΈμ€ μλλ°μ±μ ꡬννλ κ²μ Wasm, WASI λ° μ΄μ 체μ κ°λ μ λν κΉμ μ΄ν΄λ₯Ό μꡬνλ 볡μ‘ν μμ μΌ μ μμ΅λλ€.
- λλ²κΉ : 격리λ νλ‘μΈμ€μμ μ€νλλ μ ν리μΌμ΄μ μ λλ²κΉ νλ κ²μ κΈ°μ‘΄ μ ν리μΌμ΄μ μ λλ²κΉ νλ κ²λ³΄λ€ λ μ΄λ €μΈ μ μμ΅λλ€. μ΄λ¬ν κ³Όμ λ₯Ό ν΄κ²°νκΈ° μν λꡬμ κΈ°μ μ΄ λ°μ νκ³ μμ΅λλ€.
- WASI κΈ°λ₯ μμ μ±: WASIλ λΉ λ₯΄κ² λ°μ νκ³ μμ§λ§, μμ§ κΈ°μ‘΄ μμ€ν νΈμΆμ μμ ν λ체νμ§λ λͺ»νμ΅λλ€. μΌλΆ μ ν리μΌμ΄μ μ μμ§ WASIμμ μ¬μ©ν μ μλ κΈ°λ₯μ΄ νμν μ μμ΅λλ€. κ·Έλ¬λ WASI λ‘λλ§΅μλ μκ°μ΄ μ§λ¨μ λ°λΌ μ΄λ¬ν 격차λ₯Ό ν΄μν κ³νμ΄ ν¬ν¨λμ΄ μμ΅λλ€.
- νμ€ν: WASIλ νμ€μΌλ‘ μ€κ³λμμ§λ§, λ€λ₯Έ Wasm λ°νμμ μ½κ° λ€λ₯΄κ² ꡬνν μ μμ΅λλ€. μ ν리μΌμ΄μ μ΄ νΉμ λ°νμλ³ λμμ μμ‘΄νλ κ²½μ° μ΄μμ± λ¬Έμ κ° λ°μν μ μμ΅λλ€. ν΅μ¬ WASI μ¬μμ μ€μνλ κ²μ΄ μ€μν©λλ€.
WASI νλ‘μΈμ€ μλλ°μ±μ λ―Έλ
WASI νλ‘μΈμ€ μλλ°μ±μ λ°μ λ―Έλλ₯Ό κ°μ§ λΉ λ₯΄κ² λ°μ νλ κΈ°μ μ λλ€. WASIκ° μ±μνκ³ κΈ°λ₯μ΄ λμ± μλ²½ν΄μ§μ λ°λΌ, κ΄λ²μν νλ«νΌμμ μ ν리μΌμ΄μ μ 보νΈνκ³ κ²©λ¦¬νλ λ° μ μ λ μ€μν μν μ ν κ²μΌλ‘ μμλ©λλ€. ν₯ν λ°μ μ λ€μμ μ΄μ μ λ§μΆ κ²μ λλ€:
- ν₯μλ 보μ κΈ°λ₯: μΈλΆνλ μ κ·Ό μ μ΄ λ° λ©λͺ¨λ¦¬ μμ λ©μ»€λμ¦κ³Ό κ°μ 보μ κΈ°λ₯μ μ§μμ μΈ κ°λ°.
- κ°μ λ μ±λ₯: νλ‘μΈμ€ 격리μ μ±λ₯ μ€λ²ν€λλ₯Ό μ€μ΄κΈ° μν μ΅μ ν.
- νμ₯λ WASI API: λ λμ λ²μμ μ ν리μΌμ΄μ μꡬ μ¬νμ μ§μνκΈ° μν μλ‘μ΄ WASI API μΆκ°.
- λ λμ λꡬ: WASI μ ν리μΌμ΄μ μ ꡬμΆ, λ°°ν¬ λ° λλ²κΉ νκΈ° μν λ μ¬μ©μ μΉνμ μΈ λꡬ κ°λ°.
- 컨ν μ΄λν κΈ°μ κ³Όμ ν΅ν©: Docker λ° Kubernetesμ κ°μ 컨ν μ΄λν κΈ°μ κ³Όμ κΈ΄λ°ν ν΅ν©μ νμνμ¬ WASI μ ν리μΌμ΄μ μ λ°°ν¬ λ° κ΄λ¦¬λ₯Ό λ¨μνν©λλ€. μ΄λ WASI μν¬λ‘λμ λ§μΆ°μ§ νΉμ 컨ν μ΄λ λ°νμμ ν¬ν¨ν κ°λ₯μ±μ΄ λμ΅λλ€.
WASI νλ‘μΈμ€ μλλ°μ±μ μ±νμ κΈ°μ μ΄ μ±μνκ³ λ λ§μ κ°λ°μκ° κ·Έ κΈ°λ₯μ μ΅μν΄μ§μ λ°λΌ κ°μνλ κ°λ₯μ±μ΄ λμ΅λλ€. 보μ, μ΄μμ± λ° μ±λ₯μ ν₯μμν¬ μ μλ μ μ¬λ ₯μ μλ²λ¦¬μ€ μ»΄ν¨ν μμ μλ² λλ μμ€ν μ μ΄λ₯΄κΈ°κΉμ§ κ΄λ²μν μ ν리μΌμ΄μ μ λν λ§€λ ₯μ μΈ μ νμ΄ λ©λλ€.
κ²°λ‘
WebAssembly WASI νλ‘μΈμ€ μλλ°μ±μ μ ν리μΌμ΄μ 보μ λ° κ²©λ¦¬μμ μ€μν μ§μ μ λνλ λλ€. Wasm λͺ¨λμ μ€ννκΈ° μν μμ νκ³ μ΄μ κ°λ₯ν νκ²½μ μ 곡ν¨μΌλ‘μ¨ κ°λ°μλ λ€μν νλ«νΌμμ μ€νν μ μλ λ μ λ’°ν μ μκ³ μμ ν μ ν리μΌμ΄μ μ ꡬμΆν μ μμ΅λλ€. κ³Όμ λ λ¨μ μμ§λ§ WASI νλ‘μΈμ€ μλλ°μ±μ λ―Έλλ μ λ§νλ©°, μ°¨μΈλ μ»΄ν¨ν μ νμ±νλ λ° ν΅μ¬μ μΈ μν μ ν μ€λΉκ° λμ΄ μμ΅λλ€. κΈλ‘λ² νμ΄ μ μ λ 볡μ‘νκ³ μνΈ μ°κ²°λ μ ν리μΌμ΄μ μ κ°λ°νκ³ λ°°ν¬ν¨μ λ°λΌ, μμ νκ³ κ²©λ¦¬λλ©° μΌκ΄λ μ€ν νκ²½μ μ 곡νλ WASIμ λ₯λ ₯μ λμ± μ€μν΄μ§ κ²μ λλ€.